package com.tianji.remark.service;

import com.tianji.remark.domain.dto.LikeRecordFormDTO;
import com.tianji.remark.domain.po.LikedRecord;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 点赞记录表 服务类
 * </p>
 *
 * @author wangyuqing
 * @since 2024-08-26
 */
public interface ILikedRecordService extends IService<LikedRecord> {
    /**
     * 1.点赞或取消点赞方法
     *
     * @param likeRecordFormDTO 点赞业务数据DTO
     */
    void likeOrUnLike(LikeRecordFormDTO likeRecordFormDTO);

    /**
     * 2.根据业务ID查询该用户对业务的点赞状态
     *
     * @param bizIds 回答或评论的id集合
     */
    Set<Long> isLiked(List<Long> bizIds);

    /**
     * 3、定时读取zset中的点赞数并发送消息至业务方 - 更新点赞数（Day6 -随堂3）
     *
     * @param bizType
     * @param maxLikedTimes
     */
    void readLikedTimesAndSendMessage(String bizType, Integer maxLikedTimes);
}
